#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

Widget::Widget(QWidget *parent)
        : QWidget(parent), ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 1 按钮
    // 1.1 设置单选按钮 男默认选中
    ui->rBtnMan->setChecked(true);

    // 1.2 选中女，打印信息
    connect(ui->rBtnWoman, &QRadioButton::clicked, [] {
        qDebug() << "选中了女";
    });

    // 1.3 多选按钮，2是选中，0是未选中，1是半选（就是它包含的选项是部分选中）
    connect(ui->checkBox, &QCheckBox::stateChanged, [](int state) {
        qDebug() << state;
    });

    // 2 利用listWidget写诗，由于listWidget是基于Item的，因此每一行都是一个QListWidgetItem
    // 2.1 方式1，挨个创建QListWidgetItem，以此添加
//    auto item = new QListWidgetItem("锄禾日当午");
//    item->setTextAlignment(Qt::AlignHCenter);   // 设置对其格式为水平居中，默认左对齐
//    ui->listWidget->addItem(item);
//    item = new QListWidgetItem("汗滴禾下土");
//    item->setTextAlignment(Qt::AlignHCenter);
//    ui->listWidget->addItem(item);

    // 2.2 第2种添加方式，使用QStringList，相当于QList<QString>
    // 但是这种方式，没有办法设置对其方式
    QStringList list;
    list << "锄禾日当午" << "汗滴禾下土" << "谁知盘中餐" << "粒粒皆辛苦";
    ui->listWidget->addItems(list);

    // 3 treeWidget
    // 3.1 设置水平头
    ui->treeWidget->setHeaderLabels(QStringList() << "英雄" << "英雄介绍");
    auto item1 = new QTreeWidgetItem(QStringList() << "力量");
    auto item2 = new QTreeWidgetItem(QStringList() << "敏捷");
    auto item3 = new QTreeWidgetItem(QStringList() << "智力");
    // 3.2 加载顶层节点
    ui->treeWidget->addTopLevelItem(item1);
    ui->treeWidget->addTopLevelItem(item2);
    ui->treeWidget->addTopLevelItem(item3);

    // 3.3 追加子节点
    auto item1_1 = new QTreeWidgetItem(QStringList() << "刚被猪" << "前排坦克，能在吸收伤害的同时造成可观的范围输出");
    item1->addChild(item1_1);

    // 4 tableWidget
    // 4.1 要先设置列数
    ui->tableWidget->setColumnCount(3);
    // 4.2 设置水平表头
    ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "姓名" << "性别" << "年龄");
    // 4.3 设置行数
    ui->tableWidget->setRowCount(5);
    // 4.4 设置正文
//    ui->tableWidget->setItem(0,0, new QTableWidgetItem("亚瑟"));
    // 使用for循环设置
    QStringList nameList;
    nameList << "亚瑟" << "安琪拉" << "赵云" << "关羽" << "花木兰";

    QList<QString> sexList;
    sexList << "男" << "女" << "男" << "男" << "女";

    for (int i = 0; i < 5; i++) {
        int col = 0;
        ui->tableWidget->setItem(i, col++, new QTableWidgetItem(nameList[i]));
        ui->tableWidget->setItem(i, col++, new QTableWidgetItem(sexList.at(i)));
        // int转QString
        ui->tableWidget->setItem(i, col++, new QTableWidgetItem(QString::number(i + 18)));
    }
}

Widget::~Widget()
{
    delete ui;
}

